package com.ruoyi.business.domain;

import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 订单管理对象 order_info
 * 
 * @author ruoyi
 * @date 2025-07-11
 */
@Data
public class OrderInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 订单编号（PK） */
    @Excel(name = "订单编号")
    private String outerOrderNo;

    /** 支付类型（如：1-线上；2-线下） */
  //  @Excel(name = "支付类型", readConverterExp = "如=：1-线上；2-线下")
    private Integer payType;

    /** 支付时间（毫秒时间戳） */
  //  @Excel(name = "支付时间", readConverterExp = "毫=秒时间戳")
    private Long payTime;

    /** 订单状态 */
  //  @Excel(name = "订单状态")
    private Integer orderStatus;

    /** 渠道来源 */
  //  @Excel(name = "渠道来源")
    private Integer channelType;

    /** 支付状态 */
 //   @Excel(name = "支付状态")
    private Integer payStatus;

    /** 订单业务来源 */
  //  @Excel(name = "订单业务来源")
    private Integer bizSourceType;

    /** 销售渠道类型 */
 //   @Excel(name = "销售渠道类型")
    private Integer saleChannelType;

    /** 外部订单号 */
    //@Excel(name = "外部订单号")
    private String outitemId;

    /** 订单总金额 */
    @Excel(name = "订单总金额")
    private BigDecimal totalAmount;

    /** 订单应付金额 */
    @Excel(name = "订单应付金额")
    private BigDecimal shouldPayAmount;

    /** 订单实付金额 */
  //  @Excel(name = "订单实付金额")
    private BigDecimal payAmount;

    /** 订单金额 */
    @Excel(name = "订单金额")
    private BigDecimal amount;

    /** 商品总数量 */
    @Excel(name = "商品总数量")
    private Long orderNum;

    /** 销售组织VID */
    @Excel(name = "销售组织VID")
    private Long vid;

    /** 销售组织名称 */
    @Excel(name = "销售组织名称")
    private String bosName;

    /** 服务组织类型 */
 //   @Excel(name = "服务组织类型")
    private Integer processVidType;

    /** 销售组织类型 */
   // @Excel(name = "销售组织类型")
    private Integer vidType;

    /** 服务组织VID */
   // @Excel(name = "服务组织VID")
    private Long processVid;

    /** 服务组织名称（驰选MRO） */
  //  @Excel(name = "服务组织名称", readConverterExp = "驰=选MRO")
    private String processVidName;

    /** 支付阶段 */
  //  @Excel(name = "支付阶段")
    private Integer phase;

    /** 支付方式 ID（可多值，用逗号分隔） */
 //   @Excel(name = "支付方式 ID", readConverterExp = "可=多值，用逗号分隔")
    private String paymethodIds;

    /** 备注 */
    @Excel(name = "订单备注")
    private String remark;

    /** 备注1 */
    private String remark1;

    /** 积分 */
    private String remark2;

    /** 原金额 */
    private BigDecimal remark3;

    /** 抹零金额 */
    private BigDecimal remark4;

    /** 微盟平台的订单编号*/
    private Long remark5;

    /** 备注6--客户姓名 */
    private String remark6;

    /** 外部订单状态（1-草稿；2-生效已发送；3-已发货；4完成；5作废；6删除） */
    @Excel(name = "订单状态")
    private Integer status;
    private Integer restoreStatus;

    /** 收货详细地址 */
    @Excel(name = "收货详细地址")
    private String address;

    /** 收货省 */
    @Excel(name = "收货省")
    private String province;

    /** 收货城市 */
    @Excel(name = "收货城市")
    private String city;

    /** 收货区/县 */
    @Excel(name = "收货区/县")
    private String county;

    /** 发货人名称 */
    @Excel(name = "发货人名称")
    private String senderName;

    /** 发货人电话 */
    @Excel(name = "发货人电话")
    private String senderMobile;

    /** 配送方式 */
 //   @Excel(name = "配送方式")
    private Integer deliveryType;

    /** 客户编号 */
    @Excel(name = "客户编号")
    private Long wid;

    /** 客户名称 */
    @Excel(name = "客户名称")
    private String userNickName;

    /** 收货人名称 */
    @Excel(name = "收货人名称")
    private String receiverName;

    /** 收货人电话 */
    @Excel(name = "收货人电话")
    private String receiverMobile;

    @Excel(name = "创建人")
    private String createBy;
    @Excel(name = "创建时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    @Excel(name = "更新人")
    private String updateBy;
    @Excel(name = "更新时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;


    /** 订单详情信息 */
    private List<OrderInfoDetail> orderInfoDetailList;

}
